package com.tianruan.psychological.common.utils;

import java.security.SecureRandom;

/**
 * @Author: Dong
 * @Email: dong980514280@gmail.com
 * @Create: 2019-11-18 22:24
 * @PS 随机工具类
 */
public class RandomUtils {

    private static SecureRandom random = new SecureRandom();

    /**
     * 使用SecureRandom随机生成Int.
     */
    public static int randomInt() {
        return random.nextInt();
    }

    /**
     * 使用SecureRandom随机生成Int.
     */
    public static int randomAbsInt() {
        return Math.abs(randomInt());
    }

    /**
     * 使用SecureRandom随机生成Double.
     */
    public static long randomLong() {
        return random.nextLong();
    }

    /**
     * 使用SecureRandom随机生成Long.
     */
    public static long randomAbsLong() {
        return Math.abs(randomLong());
    }

    /**
     * 使用SecureRandom随机生成Double.
     */
    public static float randomFloat() {
        return random.nextFloat();
    }

    /**
     * 使用SecureRandom随机生成Double.
     */
    public static double randomDouble() {
        return random.nextDouble();
    }

    /**
     * 基于Base62编码的SecureRandom随机生成bytes.
     */
    public static String randomBase62(int length) {
        byte[] randomBytes = new byte[length];
        random.nextBytes(randomBytes);
        return Encodes.encodeBase62(randomBytes);
    }

}
